import axios from 'axios'
import constant from './constant'
axios.defaults.timeout = 60000 // 响应时间
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8' // 配置请求头
axios.defaults.baseURL = constant.ajaxUrl() // 配置接口地址
// POST传参序列化(添加请求拦截器)
// axios.interceptors.request.use((config) => {
//   const userToken = sessionStorage.getItem('userToken')
//   if (userToken) {
//     config.headers.common = {
//       'Tcsl-Loongboss-Token': userToken
//     }
//   }
//   return config
// }, (error) => {
// mintUi.openToast('传参错误')
// return Promise.reject(error)
// })
// 返回状态判断(添加响应拦截器)
axios.interceptors.response.use((res) => {
  // 对响应数据做些事
  if (res.data.code === '-10006') {
    console.log('系统异常')
    // mintUi.openAlert(res.data.msg).then(result => {
    //   // console.log('----------------------');
    //   // console.log('code : -10006');
    //   // console.log(sessionStorage.getItem('userToken'));
    //   sessionStorage.removeItem('userToken');
    //   sessionStorage.removeItem('userInfo');
    //   sessionStorage.removeItem('permission');
    //   router.replace({
    //     path: '/login'
    //     //query: {redirect: router.currentRoute.fullPath}
    //   });
    // });
  } else if (res.data.code !== '0') {
    return Promise.reject(res.data)
  }
  return res
}, (error) => {
  console.log('请求超时')
  return Promise.reject(error)
})
// 返回一个Promise(发送post请求)
export default {
  axiosCommon (url, params, type) {
    return new Promise((resolve, reject) => {
      axios({
        method: type,
        url: url,
        data: params
      }).then(response => {
        if (response.data.code !== '-10006') {
          resolve(response.data.data)
        }
      }, err => {
        reject(err)
      }).catch((error) => {
        reject(error)
      })
    })
  },

  postService (url, params) {
    return this.axiosCommon(url, params, 'post')
  },
  getService (url) {
    return this.axiosCommon(url, '', 'get')
  },
  delService (url, params) {
    return this.axiosCommon(url, params, 'delete')
  },
  putService (url, params) {
    return this.axiosCommon(url, params, 'put')
  }
}
